Apache Tapestry একটি component-based ফ্রেমওয়ার্ক যা Java web applications তৈরির জন্য ব্যবহৃত হয়। Tapestry দিয়ে ডেটাবেজ সংযোগ এবং ডেটা রিটারিভাল করা যায় খুব সহজভাবে, বিশেষত যখন Hibernate বা JPA (Java Persistence API) ব্যবহার করা হয়। Tapestry ফ্রেমওয়ার্কের সাথে ডেটাবেজ কানেকশন এবং ডেটা রিটারিভালের জন্য কিছু সাধারণ কৌশল এবং পদ্ধতি রয়েছে, যা আপনাকে ডেটাবেসের সাথে ইন্টিগ্রেটেড অ্যাপ্লিকেশন তৈরি করতে সহায়ক।
Hibernate হচ্ছে একটি ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক যা ডেটাবেসের টেবিলগুলির সাথে জাভা অবজেক্ট ম্যানেজমেন্ট করার জন্য ব্যবহৃত হয়। Apache Tapestry Hibernate এর সাথে সহজে ইন্টিগ্রেট করা যায়।
Hibernate Dependencies:
প্রথমে আপনার pom.xml
ফাইলে Hibernate এবং JPA সম্পর্কিত ডিপেন্ডেন্সি যোগ করতে হবে:
<dependencies>
<!-- Hibernate Dependencies -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.29.Final</version> <!-- সর্বশেষ সংস্করণ ব্যবহার করুন -->
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.4.29.Final</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
Hibernate Configuration:
Hibernate কনফিগারেশন ফাইল hibernate.cfg.xml
এ সংযুক্ত করুন।
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- JDBC Database connection settings -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/your_db</property>
<property name="hibernate.connection.username">username</property>
<property name="hibernate.connection.password">password</property>
<!-- JDBC connection pool settings -->
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<!-- Specify dialect -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="hibernate.current_session_context_class">thread</property>
<!-- Echo all executed SQL to stdout -->
<property name="hibernate.show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- Disable the second-level cache -->
<property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
</session-factory>
</hibernate-configuration>
JPA (Java Persistence API) হচ্ছে জাভার একটি স্ট্যান্ডার্ড API যা ORM ভিত্তিক ডেটাবেস পরিচালনার জন্য ব্যবহৃত হয়। Tapestry JPA এর সাথে ইন্টিগ্রেট করতে JPA entity manager ব্যবহার করা হয়।
JPA Dependencies:
JPA এবং Hibernate ব্যবহার করতে pom.xml
ফাইলে উপযুক্ত ডিপেন্ডেন্সি যুক্ত করুন:
<dependencies>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.4.29.Final</version>
</dependency>
</dependencies>
JPA Entity Setup:
আপনার ডেটাবেস টেবিলের সাথে যুক্ত JPA Entity ক্লাস তৈরি করুন:
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@Column(name = "email_address")
private String email;
// getters and setters
}
Inject EntityManager:
Tapestry এর ভিতরে JPA এর EntityManager
ইনজেক্ট করে ডেটাবেজের সাথে ইন্টারঅ্যাক্ট করতে পারেন।
@Inject
private EntityManager entityManager;
public List<User> getUsers() {
return entityManager.createQuery("SELECT u FROM User u", User.class).getResultList();
}
Tapestry এর সাথে ডেটাবেজ কানেকশন এবং ডেটা রিটারিভাল সাধারণভাবে EntityManager
ব্যবহার করে করা হয়, যা JPA এর একটি অংশ। ডেটাবেজে CRUD অপারেশন করতে Tapestry ফ্রেমওয়ার্কের সাথে JPA এবং Hibernate একত্রে ব্যবহৃত হয়।
Create a Data Access Method:
EntityManager ব্যবহার করে ডেটাবেজ থেকে ডেটা রিটারিভাল করুন।
@Inject
private EntityManager entityManager;
public User getUserById(Long id) {
return entityManager.find(User.class, id);
}
Displaying Data in Tapestry Page:
Tapestry পেজে রিটারিভ করা ডেটা প্রদর্শন করতে, আপনি TML ফাইল এবং Java Class এর মধ্যে ডেটা binding ব্যবহার করতে পারেন।
UserPage.java:
@Inject
private UserService userService;
private User user;
public void onActivate(Long id) {
this.user = userService.getUserById(id);
}
public User getUser() {
return user;
}
UserPage.tml:
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<body>
<h1>User Details</h1>
<p>Name: <t:property value="user.name" /></p>
<p>Email: <t:property value="user.email" /></p>
</body>
</html>
Apache Tapestry ফ্রেমওয়ার্কে Hibernate এবং JPA ব্যবহার করে ডেটাবেজ কানেকশন এবং ডেটা রিটারিভাল একটি সহজ এবং কার্যকর প্রক্রিয়া। Hibernate ORM এর মাধ্যমে ডেটাবেস টেবিলের সাথে জাভা অবজেক্টের ম্যানেজমেন্ট এবং JPA এর মাধ্যমে ডেটাবেজ অপারেশন করা যায়। Tapestry এর EntityManager
এবং SessionFactory
ব্যবহার করে আপনি ডেটা রিটারিভাল, আপডেট, এবং ডিলিট অপারেশন সহজে করতে পারেন।
Read more